package top.anydata.lifeofcode.lifesystem.service.sys.user;

import org.springframework.data.domain.Page;
import top.anydata.lifeofcode.lifesystem.dto.sys.user.SysAuthPermissionDto;
import top.anydata.lifeofcode.lifesystem.dto.sys.user.SysAuthRoleDto;

import java.util.List;

public interface IAuthRoleService {
    void createPermission(SysAuthPermissionDto permission);
    void updatePermission(SysAuthPermissionDto permission);
    void deletePermission(int id);
    SysAuthPermissionDto getPermission(int id);

    List<SysAuthPermissionDto> getPermissionByUserId(int userId);

    Page<SysAuthPermissionDto> getPermissionList(int page,int pagesize);

    void createRole(SysAuthRoleDto role);
    void updateRole(SysAuthRoleDto role);
    void deleteRole(int id);
    SysAuthRoleDto getRole(int id);

    Page<SysAuthRoleDto> getRoleList(Integer pageNum, Integer pageSize);

    void assignRoleToUser(int userId, int roleId);
    void removeRoleFromUser(int userId, int roleId);
    List<SysAuthRoleDto> getRolesForUser(int userId);

    void assignPermissionToRole(int roleId, int permissionId);
    void removePermissionFromRole(int roleId, int permissionId);
    List<SysAuthPermissionDto> getPermissionsForRole(int roleId);
}
